x86: check segment descriptor read result in 64-bit OUTS emulation
authorMatthew Daley <mattjd@gmail.com>
Thu, 10 Oct 2013 13:19:53 +0000 (15:19 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 10 Oct 2013 13:19:53 +0000 (15:19 +0200)
commit0771faba163769089c9f05f7f76b63e397677613
tree07432c02810cdbc5934bc3c3d6c701f882899255
parente9ee35826e46e4f9a40f9fdafcc609016cb2a23b
x86: check segment descriptor read result in 64-bit OUTS emulation

When emulating such an operation from a 64-bit context (CS has long
mode set), and the data segment is overridden to FS/GS, the result of
reading the overridden segment's descriptor (read_descriptor) is not
checked. If it fails, data_base is left uninitialized.

This can lead to 8 bytes of Xen's stack being leaked to the guest
(implicitly, i.e. via the address given in a #PF).

Coverity-ID: 1055116

This is CVE-2013-4368 / XSA-67.

Signed-off-by: Matthew Daley <mattjd@gmail.com>
Fix formatting.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/traps.c